7441
2397
لدي مجموعة statsname as
تفاحة
X
موز
ص
كيوي
ض
أحتاج إلى وضع التفاح والموز والكيوي في مجموعة فواكه و X و Y و Z في مصفوفة تسمى الحروف الأبجدية.
أي آلية C # بسيطة لذلك من فضلك؟ 
استخدم IEnumerable  حيث التحميل الزائد الذي يوفر الفهرس.
var الفواكه = statsname.Where ((s، i) => i٪ 2 == 0) .ToArray () ؛
var alphabets = statsname.Where ((s، i) => i٪ 2! = 0) .ToArray () ؛
|
سرقت من كيفية الحصول على عناصر بديلة باستخدام Enumerable في C #
var الفواكه = myArray.Where ((t، i) => i٪ 2 == 0) .ToArray () ؛
var alphabets = myArray.Where ((t، i) => i٪ 2 == 1) .ToArray () ؛
|
إذا فهمت أنك تسأل بشكل صحيح ، فما تريده بسيط للغاية:
تريد وضع الفاكهة في مجموعة من الفواكه ونفس الشيء بالنسبة للأبجديات وتظهر بدلاً من ذلك في مجموعة statsname لذلك:
لـ (int i = 0 ، j = 0 ؛ i  list = قائمة جديدة  () {"apple"، "X"، "banana"، "Y"، "Kiwi"، "z"}؛
نتيجة var = list.Select ((l، i) => new {l، i})
. GroupBy (p => pi٪ 2)
اختر (x => x.Select (v => v.l) .oList ())
.لإدراج()؛
ثم لديك قائمة بالقوائم:
|
قائمة <سلسلة> ثمار = قائمة جديدة <سلسلة> () ؛
list  alphabet = new List  ()؛
لـ (int i = 0 ؛ i  everyOther  (IEnumerable  مجموعة)
{
باستخدام (var e = collection.GetEnumerator ()) {
while (e.MoveNext ()) {
العائد العائد ه.
e.MoveNext () ؛ // تخطي واحد
}
}
}
يمكنك استخدام System.Linq.Skip لتخطي العنصر الأول.
سلسلة [] الكلمات = "apple X banana Y Kiwi z" .Split ()؛
فار ثمار = كل أخرى (كلمات) ؛
var alphabets = everyOther (words.Skip (1)) ؛
ما عليك سوى استخدامها كمجموعة جديدة أو استدعاء .ToArray () أو .ToList () عليها:
foreach (سلسلة و في الفواكه)
Console.WriteLine (و) ؛
سلسلة [] anArray = ثمار.ToArray () ؛ // باستخدام System.Linq
الآن لديك ما تحتاجه.
التكرارات هي طرق تؤدي إلى العائد ، راجع التكرارات (دليل البرمجة C #). هذه سمة قوية جدًا للغة. يمكنك:
تخطي العناصر
تزيين العناصر
تغيير الترتيب
التسلسلات المتسلسلة (انظر System.Linq.Concat)
...
|
إليك بعض التعليمات البرمجية للعمل ، ونأمل أن يكون هذا مفيدًا لك:
باستخدام النظام ؛
باستخدام System.Collections.Generic ؛
باستخدام System.IO ؛
باستخدام System.Linq ؛
باستخدام System.Text ؛
باستخدام System.hreading.Tasks ؛
مساحة الاسم ReadFile
{
برنامج الفصل
{
ReadFile باطل ثابت (مسار ملف سلسلة ، قائمة <سلسلة> أسماء العملاء ، قائمة  أرقام الهاتف)
{
سلسلة سطر = سلسلة فارغة ؛
var fileStream = new StreamReader (filePath) ،
منطقية isPhoneNumber = صحيح ؛
بينما ((line = fileStream.ReadLine ())! = فارغ)
{
إذا (isPhoneNumber)
{
phoneNumbers.Add (Convert.ToInt32 (سطر)) ؛
isPhoneNumber = خطأ ،
}
آخر
{
custumerNames.Add (سطر) ؛
isPhoneNumber = صحيح ،
}
}
fileStream.Close () ،
}
الفراغ الثابت الرئيسي (سلسلة [] args)
{
Console.WriteLine ("بدأت في قراءة الملف ...")؛
قائمة  custumersNamesList = قائمة جديدة  () ؛
قائمة  custumersPhonesNumbers = قائمة جديدة  () ؛
ReadFile ("SampleFile.txt" ، custumersNamesList ، custumersPhonesNumbers) ؛
// بافتراض أن كلتا القائمة لها نفس الطول.
لـ (int i = 0 ؛ i